package com.shujia.scala;


import java.util.ArrayList;

public class Demo27 {
    public static void main(String[] args) {

        ArrayList<Integer> integers = new ArrayList<>();
        integers.add(1);
        integers.add(2);
        integers.add(3);
        integers.add(4);
        Demo27 demo27 = new Demo27(integers);

        Funcation funcation = new Funcation() {
            @Override
            public int map(int i) {
                return i - 1;
            }
        };
        demo27.map(funcation);

        System.out.println(demo27.data);

        demo27.map(new Funcation() {
            @Override
            public int map(int i) {
                return i + 1;
            }
        });


        //简写
        demo27.map(i -> i + 1);

    }

    private ArrayList<Integer> data;

    public Demo27(ArrayList<Integer> data) {
        this.data = data;
    }

    public void map(Funcation funcation) {
        for (int i = 0; i < data.size(); i++) {
            data.set(i, funcation.map(data.get(i)));
        }
    }

}

interface Funcation {
    int map(int i);
}
